import type { PageParam, PageResult } from '@vben/request';
import type { Dayjs } from 'dayjs';

import { requestClient } from '#/api/request';

export namespace InfoGroupApi {
  /** 门店信息 */
  export interface InfoStore {
            id: number; // 门店ID
            groupId?: number; // 所属集团ID
            storeCode?: string; // 门店编码
            storeName?: string; // 门店名称
            parentStoreId: number; // 父门店ID
            storeType?: string; // 门店类型
            contactPerson: string; // 联系人
            contactPhone: string; // 联系电话
            contactEmail: string; // 联系邮箱
            address: string; // 地址
            longitude: number; // 经度
            latitude: number; // 纬度
            businessHours: string; // 营业时间
            status?: string; // 状态
            openTime: string | Dayjs; // 开业时间
            config: string; // 门店配置
            iotConfig: string; // IoT设备配置
            orgId?: number; // 组织ID
            businessLicense: string; // 营业执照号
            storeManager: string; // 店长
            city: string; // 城市
            district: string; // 区县
            handCardCount: number; // 手牌数量
            roomCount: number; // 房间数量
            technicianCount: number; // 技师数量
  }

  /** 集团信息信息 */
  export interface InfoGroup {
    id: number; // 主键ID
    groupCode?: string; // 集团编码
    groupName?: string; // 集团名称
    groupType: string; // 集团类型
    businessLicense: string; // 营业执照号
    legalPerson: string; // 法人代表
    contactPerson: string; // 联系人
    contactMobile: string; // 联系电话
    contactEmail: string; // 联系邮箱
    address: string; // 集团地址
    website: string; // 官网地址
    logoUrl: string; // Logo地址
    description: string; // 集团描述
    status: string; // 状态
    parentGroupId: number; // 父集团ID
    level: number; // 层级
    sortOrder: number; // 排序
        infostores?: InfoStore[]
  }
}

/** 查询集团信息分页 */
export function getInfoGroupPage(params: PageParam) {
  return requestClient.get<PageResult<InfoGroupApi.InfoGroup>>('/spa/info-group/page', { params });
}

/** 查询集团信息详情 */
export function getInfoGroup(id: number) {
  return requestClient.get<InfoGroupApi.InfoGroup>(`/spa/info-group/get?id=${id}`);
}

/** 新增集团信息 */
export function createInfoGroup(data: InfoGroupApi.InfoGroup) {
  return requestClient.post('/spa/info-group/create', data);
}

/** 修改集团信息 */
export function updateInfoGroup(data: InfoGroupApi.InfoGroup) {
  return requestClient.put('/spa/info-group/update', data);
}

/** 删除集团信息 */
export function deleteInfoGroup(id: number) {
  return requestClient.delete(`/spa/info-group/delete?id=${id}`);
}


/** 导出集团信息 */
export function exportInfoGroup(params: any) {
  return requestClient.download('/spa/info-group/export-excel', { params });
}


// ==================== 子表（门店） ====================

/** 获得门店列表 */
export function getInfoStoreListByGroupId(groupId: number) {
  return requestClient.get<InfoGroupApi.InfoStore[]>(`/spa/info-group/info-store/list-by-group-id?groupId=${groupId}`);
}
